home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Src / submit / t-auth.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.8 KB  |  104 lines

  1. /* t-auth.c: test authorisation */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Src/submit/RCS/t-auth.c,v 6.0 1991/12/18 20:28:02 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Src/submit/RCS/t-auth.c,v 6.0 1991/12/18 20:28:02 jpo Rel $
  9.  *
  10.  * $Log: t-auth.c,v $
  11.  * Revision 6.0  1991/12/18  20:28:02  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16.  
  17.  
  18. #include "util.h"
  19. #include "q.h"
  20. #include "adr.h"
  21. #include "retcode.h"
  22.  
  23. char    *myname;
  24.  
  25. main (argc, argv)
  26. int    argc;
  27. char    **argv;
  28. {
  29.     extern char    *optarg;
  30.     extern int    optind;
  31.     int    opt;
  32.  
  33.     myname = argv[0];
  34.     sys_init (myname);
  35.  
  36.     while((opt = getopt(argc, argv, "")) != EOF)
  37.         switch (opt) {
  38.             default:
  39.             fprintf (stderr, "Usage: %s\n", myname);
  40.             exit (1);
  41.         }
  42.     argc -= optind;
  43.     argv += optind;
  44.  
  45.     pp_log_stat -> ll_stat |= LLOGTTY;
  46.     pp_log_stat -> ll_file = "-";
  47.  
  48.     if (argc > 0) {
  49.         while (argc-- > 1) {
  50.             do_auth (*argv, *(argv+1));
  51.             argv += 2;
  52.         }
  53.     }
  54.     else {
  55.         char buf[BUFSIZ];
  56.         char buf2[BUFSIZ];
  57.         char *cp;
  58.  
  59.         while (fgets (buf, sizeof buf, stdin) &&
  60.                fgets (buf2, sizeof buf2, stdin)) {
  61.             if ((cp = index(buf, '\n')) == NULL)
  62.                 *cp = '\0';
  63.             if ((cp = index(buf2, '\n')) == NULL)
  64.                 *cp = '\0';
  65.             
  66.             do_auth (buf, buf2);
  67.         }
  68.     }
  69.     exit (0);
  70. }
  71.  
  72.  
  73. do_auth (str1, str2)
  74. char *str1;
  75. char *str2;
  76. {
  77.     ADDR *sender, *recip;
  78.     RP_Buf rp;
  79.     int retval;
  80.     int type = AD_822_TYPE;
  81.  
  82.     sender = adr_new (str1, type, 0);
  83.  
  84.     if (rp_isbad (retval = ad_parse (sender, &rp, CH_USA_PREF))) {
  85.         printf ("Address parsing failed:\n\t%s\n",
  86.             sender -> ad_parse_message);
  87.         adr_free (sender);
  88.         return;
  89.     }
  90.  
  91.     if (rp_isbad (retval = ad_parse (recip, &rp, CH_USA_PREF))) {
  92.         printf ("Address parsing failed:\n\t%s\n",
  93.             recip -> ad_parse_message);
  94.         adr_free (sender);
  95.         adr_free (recip);
  96.         return;
  97.     }
  98.  
  99.     auth_start (sender, recip);
  100.     auth_finish (sender, recip);
  101. }
  102.  
  103.  
  104.